教學原文參考:青蛙過河
這篇文章會介紹,如何在 Scratch 3 裡使用多個角色,搭配重複、偵測碰到其他角色、定位、函式...等積木,實作一個青蛙過河的小遊戲 ( 鍵盤控制青蛙移動,踩在漂浮的木頭上通過河流 )。
在角色編輯區,刪除貓咪角色,加入「青蛙」角色,使用「繪畫」功能,加入「木頭」和「河流」兩個空白角色 ( 參考:Scratch 角色設定 )。
點選「青蛙」角色,切換「造型」頁籤,刪除青蛙的舌頭,避免突出的舌頭造成判斷錯誤,並將「高度」調整為 30,對齊畫布中心。
為什麼高度要設定為 30 呢?因為待會青蛙會採用 40 為單位進行上下移動,為了畫面美觀以及避免超過範圍造成判斷錯誤,所以使用 30。
點選「木頭」角色,切換「造型」頁籤,使用方形工具,畫出兩個咖啡色的木頭造型,比較大的造型 ( 名稱 200 ) 尺寸設定為 200x38,比較小的造型 ( 名稱 100 ) 尺寸設定為 100x38,對齊畫布中心。
為什麼高度要設定為 38 呢?因為待會青蛙會採用 40 為單位進行上下移動,為了畫面美觀,保留木頭之間會有一點縫隙可以看到下方的河流,所以使用 38。
點選「河流」角色,,切換「造型」頁籤,使用方形工具,畫出藍色的河流造型,尺寸設定為 480x280,對齊畫布中心。
為什麼高度要設定為 280 呢?因為待會青蛙會採用 40 為單位進行上下移動,需要保留最上方和最下方的空間,讓青蛙有出發和抵達的位置。
點擊「河流」角色,設定點擊綠旗的時候,將河流移動到最下層,避免遮住青蛙或木頭。
完成後,點擊綠旗,舞台區裡應該可以看見下圖的畫面。
點擊「木頭」角色,設計出「許多木頭在河流上漂動」的效果,首先編輯點擊綠旗的程式:
由於角色在舞台邊界時,會在舞台上突出 15 點,所以計算最邊界的座標,使用邊界值 ( 240 ) 加上角色的一半寬 ( 200/2=100 ) 在減掉 16 ( 為了讓判斷更準確,使用 16 ) 之後,就是角色在邊界的座標位置。
新增一個名為「往右移」的函式,負責「短木頭」往右移動的程式:
因為短木頭的長度為 100,所以角色在邊界的座標為 -240-50+16 或 240+50-16。
新增一個名為「往左移」的函式,負責「長木頭」往右移動的程式:
因為長木頭的長度為 200,所以角色在邊界的座標為 -240-100+16 或 240+100-16。
設定分身產生時的動作:
為什麼要使用 0.1 呢?如果隨機數使用 0~3,數值只會有 0、1、2、3 的整數,如果使用小數點,就可以有 0.1、0.2...等的小數點隨機數。
完成後,點擊綠旗,木頭就會開始在水上漂動,長木頭往左漂,短木頭往右漂。
點擊「青蛙」角色,編輯點擊綠旗的程式:
新增另外一組點擊綠旗的程式,負責青蛙的左右移動:
再度新增另外一組點擊綠旗的程式,負責青蛙的上下移動:
完成後,點擊綠旗,就可以開始進行青蛙過河的遊戲。
在角色面板裡,增加一個 Apple 角色。
切換到造型頁籤,將尺寸調整為 30x30,對齊畫布中心。
點擊「青蛙」角色,在第一組點擊綠旗程式裡,加入碰到 Apple 的判斷,如果碰到 Apple,將青蛙移動回舞台中間下方 (0, -160),並發送 eat 訊息。
點擊「Apple」角色,設定點擊綠旗時,將 Apple 定位在舞台中間上方 (0, 160),如果收到 eat 訊息,將 x 座標設定為 -220~220 的隨機數。
完成後,點擊綠旗,就可以開始進行青蛙過河吃蘋果的遊戲。
範例解答:青蛙過河
如果已經熟悉了青蛙過河的原理,還可以嘗試更多好玩的作法:
- 加上「計時與計分」的機制。( 解答 )
大家好,我是 OXXO,是個即將邁入中年的斜槓青年,如果對我有點興趣(笑,可以與我聯繫,一起來做點有玩又有創意的東西吧!